package com.xcity.game.vip;

import com.alibaba.fastjson.annotation.JSONField;
import com.xcity.game.shop.DiscountGoods;

import naga.x.game.template.Template;
import naga.x.game.template.TemplateException;
import naga.x.game.template.annotation.Excel;

/**
 * vip
 * @author yang.li
 *
 */
@Excel(value = "recharge.xlsx", sheet = 1)
public class VipTemplate extends Template {

	/** vip等级 */
	protected int level;

	/** 消费额度(充值人民币) */
	protected int rechargeMoney;

	/** 购买体力次数/日 */
	protected int buyStrNum;

	/** 每个副本额外次数/日 */
	protected int stageAddedNum;

	/** 奇遇免费步数/日 */
	protected int turntableFreeNum;

	/** 背包额外格数 */
	protected int bagGridExtendNum;

	/** 好友上限 */
	protected int friendsMaxNum;

	/** 头像外观 */
	protected String headIcon;
	
	/** 可额外购买建筑队列数 */
	@Deprecated
	protected int buyBuildQueueNum;
	
	/** 购买建筑队列消耗钻石(单价) */
	@Deprecated
	protected int buyBuildQueueCost;
	
	/** 免费转盘次数 */
	protected int circleFreeCount;
	
	/** 最高连续扫荡次数 */
	protected int sweepCount;
	
	/** 购买副本挑战次数(普通本)的次数 */
	protected int fullNormalStage;

	/** 购买副本挑战次数(精英本)的次数 */
	protected int fullHeroStage;
	
	/** 购买精力限制次数 */
	protected int fullVigourCount;
	
	/** 购买钱限制次数 */
	protected int buyMoneyCount;
	
	/** 购买技能点数次数 */
	protected int buySkillPointsCount;
	
	/** 占矿队伍 */
	protected int mineTakeLimit;
	
	/** 占领建筑限制 */
	protected int captureBuildMaxCount;
	
	/** 特价礼包id */
	@JSONField(serialize = false)
	protected int giftId;

	/** 特价礼包数量 */
	@JSONField(serialize = false)
	protected int giftNum;

	/** 特价礼包原价(钻石) */
	@JSONField(serialize = false)
	protected int giftOrgPrice;
	
	/** 特价礼包现价(钻石) */
	@JSONField(serialize = false)
	protected int giftPrice;
	
	protected DiscountGoods gift;
	
	public int getLevel() {
		return level;
	}

	public void setLevel(int level) {
		this.level = level;
	}

	public int getRechargeMoney() {
		return rechargeMoney;
	}

	public void setRechargeMoney(int rechargeMoney) {
		this.rechargeMoney = rechargeMoney;
	}

	public int getBuyStrNum() {
		return buyStrNum;
	}

	public void setBuyStrNum(int buyStrNum) {
		this.buyStrNum = buyStrNum;
	}

	public int getStageAddedNum() {
		return stageAddedNum;
	}

	public void setStageAddedNum(int stageAddedNum) {
		this.stageAddedNum = stageAddedNum;
	}

	public int getTurntableFreeNum() {
		return turntableFreeNum;
	}

	public void setTurntableFreeNum(int turntableFreeNum) {
		this.turntableFreeNum = turntableFreeNum;
	}

	public int getBagGridExtendNum() {
		return bagGridExtendNum;
	}

	public void setBagGridExtendNum(int bagGridExtendNum) {
		this.bagGridExtendNum = bagGridExtendNum;
	}

	public int getFriendsMaxNum() {
		return friendsMaxNum;
	}

	public void setFriendsMaxNum(int friendsMaxNum) {
		this.friendsMaxNum = friendsMaxNum;
	}

	public String getHeadIcon() {
		return headIcon;
	}

	public void setHeadIcon(String headIcon) {
		this.headIcon = headIcon;
	}

	@Deprecated
	public int getBuyBuildQueueNum() {
		return buyBuildQueueNum;
	}

	@Deprecated
	public void setBuyBuildQueueNum(int buyBuildQueueNum) {
		this.buyBuildQueueNum = buyBuildQueueNum;
	}

	@Deprecated
	public int getBuyBuildQueueCost() {
		return buyBuildQueueCost;
	}

	@Deprecated
	public void setBuyBuildQueueCost(int buyBuildQueueCost) {
		this.buyBuildQueueCost = buyBuildQueueCost;
	}

	public int getGiftId() {
		return giftId;
	}

	public void setGiftId(int giftId) {
		this.giftId = giftId;
	}

	public int getGiftNum() {
		return giftNum;
	}

	public void setGiftNum(int giftNum) {
		this.giftNum = giftNum;
	}

	public int getGiftOrgPrice() {
		return giftOrgPrice;
	}

	public void setGiftOrgPrice(int giftOrgPrice) {
		this.giftOrgPrice = giftOrgPrice;
	}

	public int getGiftPrice() {
		return giftPrice;
	}

	public void setGiftPrice(int giftPrice) {
		this.giftPrice = giftPrice;
	}
	
	public DiscountGoods getGift() {
		return gift;
	}

	public void setGift(DiscountGoods gift) {
		this.gift = gift;
	}

	public int getCircleFreeCount() {
		return circleFreeCount;
	}

	public void setCircleFreeCount(int circleFreeCount) {
		this.circleFreeCount = circleFreeCount;
	}

	public int getSweepCount() {
		return sweepCount;
	}

	public void setSweepCount(int sweepCount) {
		this.sweepCount = sweepCount;
	}

	public int getFullNormalStage() {
		return fullNormalStage;
	}

	public void setFullNormalStage(int fullNormalStage) {
		this.fullNormalStage = fullNormalStage;
	}

	public int getFullHeroStage() {
		return fullHeroStage;
	}

	public void setFullHeroStage(int fullHeroStage) {
		this.fullHeroStage = fullHeroStage;
	}

	public int getFullVigourCount() {
		return fullVigourCount;
	}

	public void setFullVigourCount(int fullVigourCount) {
		this.fullVigourCount = fullVigourCount;
	}
	
	public int getBuyMoneyCount() {
		return buyMoneyCount;
	}

	public void setBuyMoneyCount(int buyMoneyCount) {
		this.buyMoneyCount = buyMoneyCount;
	}

	public int getBuySkillPointsCount() {
		return buySkillPointsCount;
	}

	public void setBuySkillPointsCount(int buySkillPointsCount) {
		this.buySkillPointsCount = buySkillPointsCount;
	}

	public int getMineTakeLimit() {
		return mineTakeLimit;
	}

	public void setMineTakeLimit(int mineTakeLimit) {
		this.mineTakeLimit = mineTakeLimit;
	}

	public int getCaptureBuildMaxCount() {
		return captureBuildMaxCount;
	}

	public void setCaptureBuildMaxCount(int captureBuildMaxCount) {
		this.captureBuildMaxCount = captureBuildMaxCount;
	}

	@Override
	@JSONField(serialize = false)
	public int getId() {
		return super.getId();
	}

	@Override
	public void validate() throws TemplateException {
		if (giftId != 0 && giftNum > 0) {
			gift = new DiscountGoods(giftId, giftNum, giftPrice, giftOrgPrice);
		}
	}
}
